¡iͦW¡j«Ê¥]
¡i»¡©ú¡j¦bºô¸ô¤¤¶Ç¿é¸ê®Æ©Ò¨Ï¥Îªº«¬ºA¡A¥¦§â¸ê®Æ¤Á³Î¦¨¤@¤p¶ô¤@¤p¶ô¡]chunk¡^ ¡A¦A¥[¤W±ý°e©¹¤§¥Øªº¦aªº¹q¸£¦ì§}¡AµM«á³z¹Lºô¸ô¤À§O¶Ç°e¥X¥h¡C
¡iͦW¡j«Ê¥]¥æ´«
¡i»¡©ú¡j³q°Tºô¸ô¥i¥H¤À¬°½u¸ô¥æ´«
¡]circuit switching¡^»P«Ê¥]¥æ´«¡]Packet switching¡^ ¨âºØ¡C«Ê¥]¥æ´«±Ä¥Îªº§@ªk¬O©Ò¦³±ý¶Ç¿é¸ê®Æªº¹q¸£³£¦@¦P¨Ï¥Î¤@Óºô¸ô³s½u¡A¦ý¬O¸ê®Æ¥²¶·¤Á³Î¦¨³\¦h¤p¶ô¡A³o¨Ç¤p¶ôªº¸ê®ÆºÙ¬°«Ê¥]¡]Packet¡^ ¬O¶Ç¿é¸ê®Æªº³Ì¤p³æ¦ì¡C¥Ñ©ó¨CÓ«Ê¥]³æ¿W¶Ç°e¡A©Ò¥H¨CÓ«Ê¥]³£¥²¶·¥]§t¥Øªº¹q¸£ªº¦a§}¡A«Ü¦hªº³q°T¨ó©w¤]³]©w«Ê¥]¥]§t¦Û¤v(¶Ç°eºÝ)ªº¦a§}¡COSI ¼Ò«¬ªº¤C¼h¡A¹ï¸ê®Æªº³B²z³æ¦ì³£¦³¨Ç¤£¦P¡C«Ê¥]¬Oºô¸ô¼hªº¸ê®Æ³B²z³æ¦ì¡A¦Óºô¸ô¼h¤]t³d«Ê¥]ªº¶Ç°e±±¨î¡C
¡i°Ñ¦Ò¡jpacket¡C
¡iͦW¡jµL
¡i»¡©ú¡jpage daemon ¬O UNIX ¨t²Îªº¤@Ӯ֤߳B²zµ{§Ç¡]kernel process¡^¡C¨ä³B²zµ{§ÇÃѧO½X¡]process ID¡^¬° 2¡C¨ä¥\¯à¬O¦b±Ä¥Î»Ý¨D¤À¶ªºµêÀÀ°O¾ÐÅé¡]virtual memory¡^ºÞ²z¨t²Î¤¤¡A±N³B²zµ{§Ç¦ì§}ªÅ¶¡ªº¸ê®Æ¼g¤J¦¸nÀx¦s³]³Æ¡]secondary storage device¡^¡A©Î¬O¥Ñ¦¸nÀx¦s³]³Æ§â¸ê®Æ¼g¨ì³B²zµ{§Çªº¦ì§}ªÅ¶¡¡C
¡i°Ñ¦Ò¡jprocess, kernel process, process ID, BSD¡C
¡iͦW¡j¤À¶¿ù»~¡B¤À¶¥¢»~
¡i»¡©ú¡j·í³B²zµ{§Ç°Ñ¦Ò¨ì¨äµêÀÀ¦ì§}ªÅ¶¡ªº¤À¶¡]page¡^®É¡A¥Ñ©ó¸Ó¤À¶¦¹¨è¨Ã¤£¦b¥D°O¾ÐÅ餤¡A¬G¨t²Î·|²£¥Í¤À¶¥¢»~ªº°T®§¡A±µ¤U¨Ó¨t²Î´N·|±Ä¨ú»Ý¨D¤À¶¡]demand paging¡^ªº°Ê§@¡C
¡i°Ñ¦Ò¡jdemand paging¡C
¡iͦW¡j¤À¶ªí®æ¡B¶ªí
¡i»¡©ú¡jUNIX ¨t²Î²{¦æºÞ²z°O¾ÐÅ骺¤è¦¡¬O§Q¥Î¤À¶¡]page¡^ªº°O¾ÐÅéºÞ²zµ¦²¤¦Ó«Øºc¦¨ªºµêÀÀ°O¾Ð¨t²Î¡C
¦b¦¹¨t²Î¤U¡A¥D°O¾ÐÅé³Q¤Á³Î¦¨¦P¼Ë¤j¤pªº¬q¸¨¡A¨CÓ¬q¸¨«KºÙ¬°¤@Ó¤À¶¡A¨CÓ¤À¶ªº¤j¤p±q 512 Ӧ줸²Õ¨ì 4096 Ӧ줸²Õ¤£µ¥¡A§¹¥þµø¨t²Î¦Ó²§¡C
¦Ó¤À¶ªí®æªº§@¥Î´N¬O±NµêÀÀ°O¾ÐÅ骺¤À¶¬M®g¨ì¯u¹ê°O¾ÐÅ骺¤À¶¡]physical memory page¡^¡C¦³ªº§@·~¨t²Î®ÑÄy±N¤§ºÙ¬°¤À¶¬M®gªí¡]page map table¡A²ºÙ PMT¡^¡C
¡iͦW¡jµL
¡i»¡©ú¡j©Ò¿×ªº¡upanic¡v¬O«ü¨t²Î®Ö¤ß¡]kernel¡^°»´ú¨ì¤@ÓµLªk´_쪺ÄY«¿ù»~¡C°w¹ï¦¹¡ABSD ª© UNIX ¨t²Îªº§@ªk¬O«·s±Ò°Ê¾ãÓ¾÷¾¹¡A©ÎªÌ¬O«·s׸ÉÀɮרt²Î¡]file system¡^ªº·lÃa³¡¥÷¡AµM«á¦A¦^¨ì¥¿±`ªº§@·~¼Ò¦¡©³¤U¡C
¡i°Ñ¦Ò¡jkernel, BSD, file system¡C
¡iͦW¡j¤÷³B²zµ{§Ç
¡i»¡©ú¡j·í¨Ï¥ÎªÌ¥Hfork¨t²Î©I¥s²£¥Í¤@Ó·sªº³B²zµ{§Ç(process)¡A³oÓ³B²zµ{§Ç·|©Óŧ¨ä¿Ë¥N¡]parent¡^ªº¯S©Ê¡C¦¹®É¥s¥Î fork ¨t²Î©I¥sªº¨ºÓ³B²zµ{§ÇºÙ¬°¤÷³B²zµ{§Ç¡A¦Ól¥Í¡]fork¡^¥Xªº¨ºÓ³B²zµ{§Ç§Y¬°¤l³B²zµ{§Ç¡]child process¡^¡C
¡i°Ñ¦Ò¡jprocess, child process¡C
¡iͦW¡j±K½X¡B³q¦æ½X¡B³q¦æ±K½X
¡i»¡©ú¡j³q¦æ½X»P¨C¦ì¨Ï¥ÎªÌ¤@ÓªºÃ±¤JÃѧO½X¡]login ID¡^¬° UNIX ºûÅ@¨t²Î¦w¥þªº³Ì°ò¥»³]¬I¡C¹ï©ó³q¦æ½Xªº¼f·V¿ï¨ú¥i¥H¨¾¤î ¦³¤ß¤Hªº«I¤J¥ø¹Ï¡C
³q¦æ½Xªº³]¥ßn²Å¦X¤U¦Cì«h¡G
1. ¦Ü¤Ö»Ý¤»Ó¦r¥À¡C¦b¦³¨Ç¨t²Î·|n¨D¤KÓ¦r¥À©Î§ó¦h¡C¦Ó¥B±K½X¤¤¤@©wn¦³¼ÆÈ¤Î«D^¤å¦r¥Àªº¯S®í¦r¤¸¡C¨Ò¦p #¡B! µ¥¡C
2. ¦pªG§ó§ï¦³³q¦æ½X¡A«h»Ý©M¦³³q¦æ½X¦³¤TÓ¦r¥À¥H¤Wªº®t§O¡C
3. SVR4¶}©l¡A¨t²Î·|¹ï³q¦æ½Xªº®É®Ä§@ºÞ¨î¡]aged¡^¡C¤@Ó³q¦æ½X¦b¨Ï¥Î¹L¤@¬q®É´Á«á¡A¨t²Î·|±j¢¥Î¤á§ó´«·sªº³q¦æ½X¡A¦Ó¥B¦b¤@©w®É¶¡¤º¸Ó³q¦æ½X¤£¥i§ï¦^ì¨Óªº¤º®e¡CSVR4 §ó´£¨Ñ¤F©Ò¿× shadow password¡]¸Ô¨£ shadow password¡^ªº¥\¯à¡A¥H´£ª@¨t²Î¦w¥þ©Ê¦Ü¾í¥Ö®Ñ C2 ¼h¯Å¡C
¡i°Ñ¦Ò¡jshadow password, Trust Computer System Secuirt Evaluation Criteria¡C
¡iͦW¡j±K½XÀÉ¡B³q¦æ½XÀÉ
¡i»¡©ú¡j¡u±K½XÀÉ¡vÀx¦s©Ò¦³¤w¨ú±o±b¸¹ªº¥Î¤á¤§¬ÛÃö¸ê®Æ¡C¤@¯ë»¡¨Ó¨Cµ§¸ê®Æ¥]§t¦³¤U¦C´X¶µÄæ¦ì¡G
¤U¨Ò¬°
passwd Àɤ¤¬Y¤@¥Î¤á°O¿ýªº¸ê®Æ¡G¥Ñ©ó¡u±K½XÀÉ¡vªºÀɮצs¨úÅv¡]
file permission¡^ ¬O©Ò¦³ªº¤H³£¥i¥HŪ¨ú¸ÓÀɪº¸ê®Æ¡C¦]¦¹¡AÁöµMÀɮפ¤ªº±K½X³¡¥÷¬O¸g¹L¨t²Î¨è·NÂà´«¹Lªº©_©Ç¤å¦r¡A¦ý¬°¤F¨¾¤î¹úºÝªº²£¥Í¡A¦ÛSYSTEM V 3.1 ª©¥H«á¡AÁÙ¬O±Nì¥ýªº "/etc/passwd" ÀɤÀ³Î¦¨¨â³¡¥÷¡AÅܦ¨¤F "/etc/shadow" ¤Î "/etc/passwd" ¡C¨ä¤¤ shadow ÀÉ´N¦s©ñ¤F±K½X³¡¥÷¡A©M¤@¨Ç·s¼W¥[ªº¸ê®Æ¡C¦P®É¡A¥¦ªºÅª¼gÅv¤]´N¶È¶È¶}©ñµ¹¥Î¤á¥»¤H¨Ï¥Î¡C/etc/shadow ªº¨å«¬¤º®e¦p¤U¨Ò¡G¡i°Ñ¦Ò¡j
home directory, user ID, group ID, login, password, file permission¡C¡iªþµù¡j¨ì
SVR4 ®É¤S¼W¥[¤F¤TÓÄæ¦ì¡A³o¨Ç¬O¡G1. ±K½X¨ì´Á«e¦h¤Ö¤Ñnĵ§i¨Ï¥ÎªÌ¡C
2. ¤¹³\¨Ï¥ÎªÌ¥i¥H¦h¤Ö¤Ñ¤£Ã±¤J¨t²Î¡C
3. ±K½Xªº²×¤î¨Ï¥Î¤é´Á
¡iͦW¡j³B²zµ{§Ç±±¨î°Ï¶ô
¡i»¡©ú¡j
PCB¡]process control block¡^¬O¨t²Î¬°¤F´x´¤©Ò¦³ªº³B²zµ{§Ç¡]process¡^¤§°õ¦æª¬ºA¡A©Ò¨Ï¥Îªº¤@ºØ¸ê®Æµ²ºc¡C¥H VAX ªº¾÷«¬¦Ó¨¥¡A¥¦ªº¡u³B²zµ{§Ç±±¨î°Ï¶ô¡v´N¬O¥Ñ¤@¯ë¼È¦s¾¹¡B°ïÅ|«ü¼Ð¡Bµ{¦¡p¼Æ¾¹¡Bµ{¦¡ª¬ºA¦r¡B°ò©³¼È¦s¾¹....µ¥©Ò²Õ¦¨ªº¡C¡i°Ñ¦Ò¡j
process¡C¡iͦW¡j¹ïµ¥³B²zµ{§Ç
¡i»¡©ú¡j¬°¤F°§Cºô¸ô³]pªº½ÆÂø©Ê¡A¤j³¡¥÷ªººô¸ô³£¬O¥Ñ¤@³s¦êªº¼h¦¸©Ò²Õ¦¨¡A¦Ó¦b¤£¦P¾÷¾¹ªº¹ïµ¥¼h¦¸¤¤Ó§Oªº³B²zµ{§Ç¬Ò¥i³QºÙ¬°¹ïµ¥³B²z§Ç¡C
PEX (Packet Exchange Protocol)
¡iͦW¡j«Ê¥]¥æ´«¨ó©w
¡i»¡©ú¡j¥¦¦b
XNS ¬[ºc¤¤¬O¥Î¨Ó§@¤@ºØ¼Ð·Çªº¸ê®Æ¬yªA°È¯¸¡A¥i¾a©Ê§C¥B«D©T±µ¦¡¡A¦ý¦³«½Æ¶Ç°eªº¥\¯à¡C¦b 4.3BSD ¤¤¡A¨Ï¥ÎªÌµ{¦¡®w§Q¥Î IDP ¸ê®Æ³ø´¡®y¡]datagram socket¡^¨Ó¹F¦¨¦¹¶µ¥\¯à¡C¡i°Ñ¦Ò¡j
packet, XNS, BSD, IDP, datagram socket¡C¡iͦW¡j¹ê»Ú°Ï¶ô
¡i»¡©ú¡j¨t²Î¹ê»Ú¦s©ñ¦b¦¸Àx¦sÅé¤Î³B²z¸ê®Æªº³æ¦ì¡C¤@¯ë¬O¥Î
1024Ӧ줸²Õ¬°¹ê»Ú°Ï¶ôªº¤j¤p¡A¦ý¨t²Î¤£¦P§@ªk´N¤£¤@¡C¡i°Ñ¦Ò¡j
logical block¡C¡iͦW¡j³B²zµ{§ÇÃѧO½X
¡i»¡©ú¡j¬°
³B²zµ{§ÇÃѧO½X¡] process ID ¡^ªºÁY¼g¡A¸Ô¨£ process ID ¤@Ãã¡C¡iͦW¡jItªk
¡i»¡©ú¡j¬°¤F¸Ñ¨MÂù¦V¶Ç¿é½u¸ô¤¤¤@ºÝ°e©¹¥t¤@ºÝªº¸ê®Æ®Ø¬[¡]
data frame¡^»P»{¥i®Ø¬[¡]acknowledge frame¡^¸I¼²ªº°ÝÃD¡A¹E¦³¦¹ªkªº²£¥Í¡C¥¦¬O§â¦^ÂХΪº»{¥i°T®§©ñ¦b¦P®Én°e¥Xªº¸ê®Æ®Ø¬[¤¤¡A¦p¦¹«K¥i¬Ù¤U°e¥X¥t¤@Ó»{¥i®Ø¬[¦ÓÁ×§K½u¸ô¨Ï¥ÎÅvªºª§¹Ü¾Ô¡C¡iͦW¡jºÞ½u¡BºÞ¹D
¡i»¡©ú¡j¬O¤@ºØÂ²³æªº¥¦æ³B²z¤è¦¡¡C¤@Ó©R¥Oªº¼Ð·Ç¿é¥X¥i¥H«¾É¨ìºÞ½u¡A¦ÓºÞ½u¤S¥i«¾É¦¨¥t¤@Ó©R¥Oªº¼Ð·Ç¿é¤J¡CºÞ½u¥i¤À¬°¨ã¦WºÞ½u¡]
named pipe¡^»P¤@¯ëºÞ½u¡]unnamed pipe ©Îª½±µ¥s pipe¡^¡A¨âªÌ¶¡¤£¦P³B½Ð°Ñ¾\¤U¹Ï¡G¯S ©Ê |
¨ã ¦W ºÞ ½u | ¤@ ¯ë ºÞ ½u |
³B²zµ{§Çªº¨Ï¥Î¸ê®æ | ¨S¦³¨î | ¥²¶·¦³¿Ë¤lÃö«Y |
ÀɮצWºÙ | ¦³ÀɦW¡A¥Î ls -l ¥i¬Ý¨ì¨äÀÉ®×Äݩʬ° p | µLÀɮצWºÙ¡A¬°¨t²Î©Ò«Ø¥ßªº¼È®ÉÀÉ |
¸ê®ÆÅª¼gªº¦¸§Ç | ¥ý¶i¥ý¥X | ¥ý¶i¥ý¥X |
°O¾ÐÅ骺¨Ï¥Î¤è¦¡ | ¶È¯à¨Ï¥Îª½±µ°Ï¶ô | ¶È¯à¨Ï¥Î¶¡±µ°Ï¶ô |
«Ø¥ßªº¤è¦¡ | ¨Ï¥Î mknod() ¨t²Î©I¥s | ¨Ï¥Î pipe() ¨t²Î©I¥s |
§R°£ªº¤è¦¡ | ¨Ï¥Î rm «ü¥O©Î¬Ounlink()¨t²Î©I¥s | ¦b¨Ï¥Î§¹«á·|³Q¦Û°Ê§R°£ |
¡iͦW¡jÀu¥ýÅv¡AÀu¥ýµ¥¯Å
¡i»¡©ú¡j³B²zµ{§ÇªºÀu¥ýÅv¨M©w¤F¨t²Î°õ¦æ¦¹µ{§Çªº¥ý«á¶¶§Ç¥H¤Î¨ú¥Î¨t²Î¸ê·½ªº½d³ò¡C¤@¯ë¦Ó¨¥¡A¨t²Î½á¤©³B²zµ{§ÇªºÀu¥ýÅv§¡¦³¨ä©T©wªº¹w³]È¡A¦Ó¨Ï¥ÎªÌ¥u¯à¡u°§C¡v¦Ó¤£¯à¡u´£°ª¡v¡A¥u¦³¶W¯Å¨Ï¥ÎªÌ¡]
super user¡^¥iݨ㦹¨âªÌªºÅv§Q¡C UNIX ´£¨Ñ¤F nice ³oÓ«ü¥O¥i¥Î¨Ó×§ï³B²zµ{§ÇªºÀu¥ýÅv¡C¡i°Ñ¦Ò¡j
superuser¡C¡iͦW¡j³B²zµ{§Ç¡Bµ{§Ç¡B¦æµ{
¡i»¡©ú¡j³B²zµ{§Ç¬O¥Ñ«ü¥O¡B¨Ï¥ÎªÌ¸ê®Æ¥H¤Î¨t²Î¸ê®Æ¸`°Ï
(segment) ©Ò¦@¦P²Õ¦¨ªº¤@Óµ{¦¡°õ¦æÀô¹Ò¡]environment¡^¡C ¦Óµ{¦¡«h¬O¤@Ó´¶³qÀɮס]ordinary file¡^¡C ¥¦¥]§t¤F«ü¥O¤Î¸ê®Æ¡A³o¨Ç«ü¥O»P¸ê®Æ¬O¥Î¨Óªì©l¡]initial¡^ ³B²zµ{§Çªº«ü¥O»P¸ê®Æ¸`°Ï¡C¦]¦¹¥i¥H»¡³B²zµ{§Ç¬OÓ¥¿¦b°õ¦æ¤¤ªºµ{¦¡¥[¤W¤@¨ÇÃB¥~ªº¸ê®Æ¡C¤ñ¤è»¡¼È¦s¾¹ªºÈ¡Bµ{¦¡°ïÅ|»P¨t²Î°ïÅ|¡B³Q¶}±ÒÀɮתº¼Æ¶q¤Î¿é¥X¿é¤J¸Ë¸mªºª¬ºAµ¥¡C¦]¦¹³B²zµ{§Ç¨ä¹ê¬O¥Ñ«ü¥O¤Î¤Wz¦U¶µ¸ê®Æ²Õ¦X¦Ó¦¨ªº¡CÃö©ó«áªÌ§Ú̺٥¦¬°³B²zµ{§Çªº¥»¤å¡]context¡^¡C³B²zµ{§Ç¬OӰʺAªºª«¥ó¡]
object¡^¡A¤£¦Pªº®É¶¡¨ä¤º®e³£·|¤£¤@¼Ë¡C¨Ò¦p¤l³B²zµ{§Çªº²£¥Í§Y·|§ïÅܳB²zµ{§Çªº¤º§t¡C¦b¬YÓ¯S©w®É¨èªº³B²zµ{§Ç¤§¤º®e³QºÙ¬°³B²zµ{§Çªº¼v¹³ (process image) ¡C¦Ó AT&T ¥Xª©ªº UNIX ¨t²Î¨Ï¥ÎªÌ¤â¥U¡A¹ï³B²zµ{§Ç©Ò¤Uªº¡y©x¤è¡z©w¸q¬°¡y¤@Ó¥¿¦b°õ¦æ¤¤ªº³B²zµ{§Ç¤§¼v¹³¡z¡]the execution of a process image¡^¡C´«¨¥¤§¡Aµ{¦¡¬OÀRºAªº¡B¦ºªº¡F¦Óµ{§Ç¬O°ÊºAªº¡BÂA¬¡ªº¡C¬°¤F°õ¦æ¤@Óµ{¦¡¡A
UNIX ªº®Ö¤ßµ{¦¡¡]kernel¡^·|¥h«Ø¥ß¤@Ó·sªº³B²zµ{§Ç¡A³oÓ³B²zµ{§Ç±N´£¨Ñ¸Ó¥Øªºµ{¦¡§¹¾ãªº°õ¦æÀô¹Ò»P¤@¤Á©Ò»Ýªº¸ê®Æ¡C UNIX ¨t²Î¸Ì²£¥Í³B²zµ{§Çªº¨t²Î©I¥s¬° fork()¡A°õ¦æµ{¦¡ªº¨t²Î©I¥s¬O exec()¡C¡i°Ñ¦Ò¡j
kernel, context switching¡C¡iͦW¡j³B²zµ{§Ç±±¨î°Ï¶ô
¡i»¡©ú¡j½Ð°Ñ¦Ò¡u
PCB¡v¤@Ãã¡C¡i°Ñ¦Ò¡j
PCB¡C¡iͦW¡j³B²zµ{§Ç°t¸m¿ðº¢®É¶¡
¡i»¡©ú¡j¥¦¬O«ü±q¨t²Î±µ¨ì§Y®É³B²zµ{§Çªº¤¤Â_¡]
interrupt¡^»Ý¨D¡A¨ì¶}©l°õ¦æ¸Ó³B²zµ{§Ç¶¡ªº®É¶¡®t¡]interval¡^¡A³q±`§ÚÌ¥H³o¬q®É¶¡ªºªøµu¨Óµû¦ô§Y®É¨t²Îªº®Ä²v¡C¨M©w¨t²Î³B²zµ{§Ç°t¸m¿ðº¢®É¶¡ªº¦]¯À¦³¤G¶µ¡G¤¤Â_¿ðº¢®É¶¡¡]interrupt latency¡^»P¥»¤å¸m´«®É¶¡¡]context switching time¡^¡C¡iͦW¡j³B²zµ{§Ç¸s²Õ
¡i»¡©ú¡jUNIX ¨t²Î¤¹³\¬ÛÃöªº³B²zµ{§Ç¨Ó²Õ¦¨¤@Ó¸s²Õ¡]group¡^¡CÁ|¨Ò¨Ó»¡¡A
¤@Ó½ÆÂøªº¸ê®Æ®wºÞ²z¨t²Î´N¥i¯à·|²£¥Í¥X³\¦hªº³B²zµ{§Ç¨Ó±q¨Æ¡u¨Ã¦æ¡v¡]concurrent¡^ªºÅª¼g§@·~¡C
¥ô¦ó¤@Ó³B²zµ{§Ç¡A¥un¥¦¤£¨ã¦³³B²zµ{§Ç¸s²Õº»âªº¨¥÷¡A³£¥i¥H¦Û¦æ«Ø¥ß¤@Ó³B²zµ{§Ç¸s¡A¦Ó¦¨¬°¦¹¸s²Õªº¸s²Õº»â¡]group leader¡^¡C©ÎªÌ¬O²æÂ÷즳ªº³B²zµ{§Ç¸s¡A¥[¤J¥t¥~¤@Ó¸sÅé¸Ì¡C
¤@¯ë¦Ó¨¥¡A¤@Ó·s«Ø¥ßªº³B²zµ{§Ç·|¥[¤J¨ä¤÷³B²zµ{§Ç¡]parent process¡^©ÒÄݪº³B²zµ{§Ç¸s²Õ¤º¡C
¡i°Ñ¦Ò¡jprocess, process group leader, parent process¡C
¡iͦW¡j³B²zµ{§Ç¸s²Õº»â
¡i»¡©ú¡j¦b³B²zµ{§Ç¸s²Õ¡]process group¡^¤¤¦³¤@Ó³B²zµ{§Ç¬°¦¹¸s²Õªº¸s²Õº»â¡AµM«á¦¹¸s²Õ¤¤ªº¨CÓ³B²zµ{§Ç§¡«O¦³¥¦ªºÃѧO½X¡A©ñ¦b³B²zµ{§Ç¸s²ÕÃѧO½X¡]process group ID¡^Äæ¦ì¤¤¡A¥Î¥HÃѧO¥X¦¹¸s¡C
¡i°Ñ¦Ò¡jprocess, process group¡C
¡iͦW¡j³B²zµ{§ÇÃѧO½X
¡i»¡©ú¡j¦b UNIX ¨t²Î¤U¡A¨C¤@Ó³B²zµ{§Ç³£¦³¤@Ӱߤ@ªºÃѧO½X¡A§Ú̺٤§¬°³B²zµ{§ÇÃѧO½X¡A¥¦¤]²ºÙ¬° pid¡CUNIX ¨t²Î©Ò±Ò°Êªº²Ä¤@Ó³B²zµ{§Ç¬° init¡A¥¦ªº³B²zµ{§ÇÃѧO½X¬° 1¡A¨ä¥Lªº³B²zµ{§Ç³£¬O¥Ñ¥¦©Òl¥Í¡]fork¡^¥X¨Ó¡C
¡i°Ñ¦Ò¡jprocess
¡iͦW¡j³B²zµ{§Ç¥Í©R¶g´Á
¡i»¡©ú¡j·íµ{¦¡¤¤¨Ï¥Î fork ¨t²Î©I¥s¡]system call¡^ ®É¡A¤@Ó·s³B²zµ{§Çªº¥Í©R¶g´Á´N¥Ñ¦¹¶}©l¤F¡C ª½¨ì¥Î¤F "exit" ³oÓ¨t²Î©I¥s«á¤~§i²×¤î¡C¨Ï¥Î exit ¨t²Î©I¥s©Ò²×¤îªº³B²zµ{§Ç¬OÄÝ©ó¦ÛµMµ²§ô¡A¦ý³B²zµ{§Ç¤]¥i¯à¦]¥~¤O¦Ó°±¤î°õ¦æ¡C ¨Ò¦p±µ¦¬¨ì SIGTERM¡BSIGHUP¡BSIGQUIT¡BSIGINT µ¥°T¸¹¡]signal¡^¡C
·í³B²zµ{§Çµ²§ô«á¡A¨t²Î·|§@¥H¤Uªº«áÄò°Ê§@¡G
1. «·s³]©w¥ô¦ó¥¼°µ§¹ªºp®Ép¼Æ¾¹¡C
2. ÄÀ©ñ¸Ó³B²zµ{§Ç©Ò´x´¤ªº¸ê·½¡C
3. Ãö³¬©Ò¦³¶}±ÒªºÀɮסC
4. ±µºÞ©Ò¦³¥¼§¹¦¨ªº¤l³B²zµ{§Ç¡]child process¡^¡C¬Ý¬OnÅý¥¦ÌÄ~Äò°õ¦æ¡A©ÎªÌµ²§ô¡C
¡i°Ñ¦Ò¡jsystem call, signal, child process¡C
¡iͦW¡j¿ï¨únÄ묹ªº³B²zµ{§Ç
¡i»¡©ú¡j·í¨t²Î°»°¼¥X±N¦³¦ºµ²¡]dead lock¡^ªº±¡ªpµo¥Í®É¡A¥²¶·n¨D³¡¥÷ªº³B²zµ{§Ç¼È®É±N¸ê·½ÄÀ¥X¡A¥H«KÅý¨ä¾lªº³B²zµ{§Ç¯à¶¶§Q¨ú±o¸ê·½Ä~Äò¶i¦æ¤u§@¡C¦Ü©ó¸ÓÅý¦óªÌ¥ýÄÀ¥X¸ê·½¡H¦Ó¦óªÌÀu¥ý°õ¦æ¡H³oÓ¹Lµ{§YºÙ§@¡u¿ï¨únÄ묹ªº³B²zµ{§Ç¡v¡C³Ì±`¥Îªº¤èªk´N¬O¨Ì³B²zµ{§ÇªºÀu¥ýµ¥¯Å¡]priority¡^¨Ó§@¨M©w¡C
¡iͦW¡j³B²zµ{§Çª¬ºA
¡i»¡©ú¡j¤@¯ë¦Ó¨¥¡A³B²zµ{§Ç¦b¥D°O¾ÐÅ餤¦³´XºØ¤£¦Pªº¦s¦bª¬ºA¡C¨Ò¦p°õ¦æª¬ºA¡B·Ç³Æª¬ºA¡BºÎ¯vª¬ºA¡B²×¤îª¬ºAµ¥¡C¨ä¶¡ªºÃö«Y¦p¤U¹Ï©Ò¥Ü¡C¨Ï¥ÎªÌ¥i¥Î ps -l ©R¥O¬d¸ß©Ò¦³¦s¦bªº³B²zµ{§Ç¤§ª¬ºA¡C
¡i°Ñ¦Ò¡jprocess, time slice¡C
¡iͦW¡j³B²zµ{§Çµ²ºc
¡i»¡©ú¡j¤@ºØ¥Ñ¨t²Î®Ö¤ß¡]kernel¡^©ÒºûÅ@ªº¸ê®Æµ²ºc¡Aùر¦s¤F©Ò¦³¦b¨t²Î¤º¬¡°Êªº³B²zµ{§Ç¤§¸ê®Æ¡C³o¨Ç¸ê®Æ¬O¾n¯d¡]resident¡^¦b°O¾ÐÅ餤ªº¡A¤£¹³¡u¨Ï¥ÎªÌµ²ºc¡v¡]user structure¡^·|¦]¬°³B²zµ{§Çªº²¾¥X¡]swapped out¡^¦Ó¸òµÛ²¾¨ìÀx¦sÅé¤W¡C
¡i°Ñ¦Ò¡jkernel¡C
¡iͦW¡j³B²zµ{§Ç
¡i»¡©ú¡jUNIX ¨t²Î©Ò«Ø¥ßªº¨C¤@Ó³B²zµ{§Ç³£·|¦b®Ö¤ßµ{¦¡¸Ìªº³B²zµ{§Çªí¤¤¯d¦³¤@µ§°O¿ý¡A³oµ§°O¿ý°O¸üµÛ¸Ó³B²zµ{§ÇÃö©ó±Æµ{¡B¦p¦ó³B²z°O¸¹¥H¤ÎµêÀÀ°O¾ÐÅé«ç¼Ë©w§}ªº¸ê°T¡C
¡iͦW¡j³B²zµ{§Ç²×¤î
¡i»¡©ú¡j²×¤î³B²zµ{§Çªº°õ¦æp¦³¤ºØ¤è¦¡¡G
1. ¥¿±`²×¤î±¡ªp¡G
a) ¦b main() ùذõ¦æ return ±Ôz¡C
b) ¥s¥Î exit() ¨t²Î©I¥s¡C
c) ¥s¥Î _exit() ¨ç¦¡¡C
2. ²§±`²×¤î±¡ªp¡G
a) ¥s¥Î abort() ¨ç¦¡¡C
b) ³Q°T¸¹©Ò¤¤¤î¡C
¡iͦW¡j±Ò©lÀɮסB´yzÀÉ
¡i»¡©ú¡j¦b
UNIX¨t²Î¤¤¡ABourne shell ©³¤Uªº .profile ÀÉ®×´Nµ¥©ó DOS ¨t²Î¤¤ªº autoexec.bat ÀɮסC¦b¨Ï¥ÎªÌñ¤J¡]login¡^¨t²Î«á·|¦Û°Ê°õ¦æ¡C¥Ñ©ó¸Ì±¤]¥]¬A¤F¤@¨Ç¨Ï¥ÎªÌ©Ò»ÝÀô¹Ò¤º®eªº³]©w¡A¦]¦¹¤S¦³¤HºÙ¥¦¬°¡uÀô¹Ò³]©wÀɮסv¡C¡i°Ñ¦Ò¡jBourne shell, login¡C
¡iªþµù¡j¦b C shell ¤U¡A¦¹ÀɮצWºÙ¬° .login¡C
Protocol¡iͦW¡j³q°T¨ó©w
¡i»¡©ú¡j©Ò¿×¡u³q°T¨ó©w¡v´N¬O¥Î¥H³W©w¹q¸£¶¡¦b§@³q°T®É©Ò¥²¶·¦@¦P¿í¦uªº®æ¦¡»P®É§Ç¡A¨Ï©¼¦¹¸ê®Æªº¶Ç¿é¯à°÷²Î¤@¤Æ¡C³ÌµÛ¦Wªººô¸ô¨ó©w¬O¡u°ê»Ú¼Ð·Ç²Õ´¡v©Òq©wªº¤C¼h¡u¶}©ñ¨t²Î¥æ¤¬°Ñ¦Ò¼Ò¦¡¡v¡A²ºÙ OSI ¡C
protocol family¡iͦW¡j³q°T¨ó©w±Ú¸s
¡i»¡©ú¡j¦b³æ¤@ªººô¸ô¬[ºc¤W¡A©Ò¦³¬ÛÃö³q°T¨ó©w¡]protocol¡^ªº¶°¦XÅéºÙ¤§¡CÁ|¨Ò¨Ó»¡¡GTCP¡BUDP¡BIP¡BICMP ´N¬O DARPA Internet ºô¸ôªº³q°T¨ó©w±Ú¸s¨ä¤¤¤@¤ä¡C
¡iªþµù¡jDARPA¡]Defense Advanced Research Projects Agency¡^°ª¯Å°ê¨¾¬ã¨s±M®×§½¬O¬ü°ê°ê¨¾³¡¤ºªº¤@Ó³æ¦ì¡C
protocol switch structure¡iͦW¡j³q°T¨ó©w¥æ´«¾÷ºc
¡i»¡©ú¡j¡u³q°T¨ó©w¥æ´«µ²ºc¡v¸Ì±Àx¦s¤F¨t²Î©Ò¯à°÷¤ä´©¥þ³¡³q°T¨ó©w¡]protocol¡^ªº¶i¤JÂI¡þ¶µ¥Ø¡]entry¡^¡C
¡i°Ñ¦Ò¡jprotocol¡C
Pseudo driver¡iͦW¡jµêÀÀÅX°Êµ{¦¡
¡i»¡©ú¡j¡uµêÀÀÅX°Êµ{¦¡¡v»P¡u³]³ÆÅX°Êµ{¦¡¡vªº¤£¦P¤§³B¦b©ó¡G¥¦¨Ã¤£¥]§t¹êÅ骺¶gÃä³]³Æ¡C¹³¦h¤u¾¹¡]multiplexor¡^´N¬O¡C
¡i°Ñ¦Ò¡jdevice driver¡C
Pseudo terminal¡iͦW¡jµêÀÀ²×ºÝ¾÷
¡i»¡©ú¡j«ü¤@¹ï³]³Æ¡A¤@Ó¬O¥Dn¡]master¡^¡A¥t¤@Ó¬°Äݱq¡]slave¡^¡C·í¤@Ó³B²zµ{§Ç¶}±ÒµêÀÀ²×ºÝ¾÷³]³Æ¡A«h·|±o¨ì¨âÓÀÉ®×´yzµü¡C±qÄݳ¡¥÷¥Nªí¨Ï¥ÎªÌ³B²zµ{§Çªº¤¶±¡C¨CÓ¿é¤J¨ì¥DnµêÀÀ²×ºÝ¾÷ªº¸ê®Æ³£·|¿é¤J¨ì±qÄݵêÀÀ²×ºÝ¾÷¡F¦P¼Ë¦a¡A¨CÓ¿é¤J¨ì±qÄݵêÀÀ²×ºÝ¾÷ªº¸ê®Æ¤]³£·|¿é¤J¨ì¥DnµêÀÀ²×ºÝ¾÷¡C³oÓ¥\¯à±q SVR3.2 ¥H«á¤~¦³´£¨Ñ¡A¦Ó BSD 4.3 ª©ªº UNIX ¨t²Î¬O³Ì¦´£¨Ñ¦¹¤@¥\¯àªº UNIX ¨t²Î¡ABSD ¤¤ªº script «ü¥O´N¬O§Q¥ÎµêÀÀ²×ºÝ¾÷ªº¥\¥Î©Ò¼¶¼gªº¡C
¨å«¬¨Ï¥ÎµêÀÀ²×ºÝ¾÷¬O¥ý¶}©l¥DnµêÀÀ²×ºÝ¾÷¡AµM«á fork ¤@¥÷«þ¨©¡A¥Ñ¤l³B²zµ{§Ç¶}©l±qÄݵêÀÀ²×ºÝ¾÷¡C
¡i°Ñ¦Ò¡jfile descriptor, line descipline, device driver¡C
¡iªþµù¡jpty ¬° pseudo terminal ªºÁY¼g¡C
PSN (Packet Switch Node)¡iͦW¡j¤À«Ê¥æ´«¸`ÂI¡C
¡i»¡©ú¡j³o¬O¤@ºØµwÅé³]³Æªº¦WºÙ¡A¥Dn¬O¦b¤À«Ê¥æ´«ºô¸ôªº«Øºc¤W³Q¨Ï¥Î¡C¨CÓ¸`ÂI·|§Q¥Î¤@ºØ³q°T¨ó©w¡]protocol¡^¨Ó´£¨ÑºB¥i¾aªº¡B¥i§@¬y¶q±±¨îªº¡B¤À«Ê¥æ´«ªº¥\¯à¡C
punctual input mode¡iͦW¡jµL
¡i»¡©ú¡j¦P¡uì©l¿é¤J¼Ò¦¡¡v¤@Ãã¡C
¡i°Ñ¦Ò¡jraw input mode¡C